home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / scsh / ndbm.c < prev    next >
C/C++ Source or Header  |  1995-10-13  |  4KB  |  132 lines

  1. /* This is an Scheme48/C interface file, 
  2. ** automatically generated by cig.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h> /* For malloc. */
  7. #include "libcig.h"
  8.  
  9. #include <ndbm.h>
  10.  
  11. extern int errno;
  12.  
  13. #define errno_or_false(x) (((x) == -1) ? ENTER_FIXNUM(errno) : SCHFALSE)
  14.  
  15. /* stub used to return FALSE when scheme checks for Berkeley dbm */
  16. int db_check()
  17.   return 1;
  18.  
  19. scheme_value df_database_open(long nargs, scheme_value *args)
  20. {
  21.     extern int database_open(const char *, int , int , DBM** *);
  22.     scheme_value ret1;
  23.     int r1;
  24.     DBM** r2;
  25.  
  26.     cig_check_nargs(4, nargs, "database_open");
  27.     r1 = database_open(cig_string_body(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), &r2);
  28.     ret1 = errno_or_false(r1);
  29.     AlienVal(VECTOR_REF(*args,0)) = (long) r2;
  30.     return ret1;
  31.     }
  32.  
  33. scheme_value df_database_close(long nargs, scheme_value *args)
  34. {
  35.     extern int database_close(DBM* );
  36.     scheme_value ret1;
  37.     int r1;
  38.  
  39.     cig_check_nargs(1, nargs, "database_close");
  40.     r1 = database_close((DBM* )AlienVal(args[0]));
  41.     ret1 = ENTER_FIXNUM(r1);
  42.     return ret1;
  43.     }
  44.  
  45. scheme_value df_database_error(long nargs, scheme_value *args)
  46. {
  47.     extern int database_error(DBM* );
  48.     scheme_value ret1;
  49.     int r1;
  50.  
  51.     cig_check_nargs(1, nargs, "database_error");
  52.     r1 = database_error((DBM* )AlienVal(args[0]));
  53.     ret1 = ENTER_FIXNUM(r1);
  54.     return ret1;
  55.     }
  56.  
  57. scheme_value df_database_clearerr(long nargs, scheme_value *args)
  58. {
  59.     extern int database_clearerr(DBM* );
  60.     scheme_value ret1;
  61.     int r1;
  62.  
  63.     cig_check_nargs(1, nargs, "database_clearerr");
  64.     r1 = database_clearerr((DBM* )AlienVal(args[0]));
  65.     ret1 = ENTER_FIXNUM(r1);
  66.     return ret1;
  67.     }
  68.  
  69. scheme_value df_database_delete(long nargs, scheme_value *args)
  70. {
  71.     extern int database_delete(DBM* , const char *);
  72.     scheme_value ret1;
  73.     int r1;
  74.  
  75.     cig_check_nargs(2, nargs, "database_delete");
  76.     r1 = database_delete((DBM* )AlienVal(args[1]), cig_string_body(args[0]));
  77.     ret1 = ENTER_FIXNUM(r1);
  78.     return ret1;
  79.     }
  80.  
  81. scheme_value df_database_fetch(long nargs, scheme_value *args)
  82. {
  83.     extern const char *database_fetch(DBM* , const char *);
  84.     scheme_value ret1;
  85.     const char *r1;
  86.  
  87.     cig_check_nargs(3, nargs, "database_fetch");
  88.     r1 = database_fetch((DBM* )AlienVal(args[2]), cig_string_body(args[1]));
  89.     ret1 = VECTOR_REF(*args,0);
  90.     {AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
  91.     return ret1;
  92.     }
  93.  
  94. scheme_value df_database_store(long nargs, scheme_value *args)
  95. {
  96.     extern int database_store(DBM* , const char *, const char *, int );
  97.     scheme_value ret1;
  98.     int r1;
  99.  
  100.     cig_check_nargs(4, nargs, "database_store");
  101.     r1 = database_store((DBM* )AlienVal(args[3]), cig_string_body(args[2]), cig_string_body(args[1]), EXTRACT_FIXNUM(args[0]));
  102.     ret1 = ENTER_FIXNUM(r1);
  103.     return ret1;
  104.     }
  105.  
  106. scheme_value df_database_first(long nargs, scheme_value *args)
  107. {
  108.     extern const char *database_first(DBM* );
  109.     scheme_value ret1;
  110.     const char *r1;
  111.  
  112.     cig_check_nargs(2, nargs, "database_first");
  113.     r1 = database_first((DBM* )AlienVal(args[1]));
  114.     ret1 = VECTOR_REF(*args,0);
  115.     {AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
  116.     return ret1;
  117.     }
  118.  
  119. scheme_value df_database_next(long nargs, scheme_value *args)
  120. {
  121.     extern const char *database_next(DBM* );
  122.     scheme_value ret1;
  123.     const char *r1;
  124.  
  125.     cig_check_nargs(2, nargs, "database_next");
  126.     r1 = database_next((DBM* )AlienVal(args[1]));
  127.     ret1 = VECTOR_REF(*args,0);
  128.     {AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
  129.     return ret1;
  130.     }
  131.  
  132.